package com.zbkj.client.service;

import com.zbkj.client.vo.CreateDpVideoRequestVo;
import com.zbkj.common.model.client.digital.DgVideo;
import com.zbkj.common.request.client.VideoTemplateRequest;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;

import java.util.Map;
import java.util.concurrent.CompletableFuture;

public interface DigitalPersonService {
    /**
     * 获取数字人相关accessToken
     */
    String getAccessToken();

    /**
     * 合成数字人视频请求
     */
    ResponseEntity<String> requestDpVideo(String url, HttpHeaders headers, Map<String, Object> params);

    Map<String, Object> addDpVoice(Map<String, Object> params, Integer userId, Integer merId);

    Integer addDpVideo(Integer id, Map<String, Object> params,  Integer userId, Integer merId);

    CompletableFuture<Integer> addDpVideoCommon(DgVideo dgVideo, Map<String, Object> params, String type, String audioManId, String text, String voiceId, Integer userId, Integer merId, String name, Map<String, Object> saveLocation) ;

    CompletableFuture<Integer> addDpVideoTemplate(DgVideo dgVideo, Map<String, Object> params, String type, String audioManId, String text, String voiceId, Integer userId, Integer merId, String name, Map<String, Object> saveLocation) ;

    DgVideo insertDpVideo(Integer userId, Integer merId, String name, Map<String, Object> saveLocation);

    DgVideo insertDpVideo(Integer userId, Integer merId, String name, Map<String, Object> saveLocation, CreateDpVideoRequestVo createDpVideoRequestVo);

    DgVideo insertDpVideo(Integer userId, Integer merId, String name, Map<String, Object> sourceMap, VideoTemplateRequest videoTemplateRequest, Integer voiceId);
}